let count = 0
/**
 *
 * 搜索插入位置： https://leetcode-cn.com/problems/search-insert-position/
 *
 *
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
var searchInsert = function (nums, target) {
  let l = 0
  let r = nums.length - 1
  let m
  while (l <= r) {
    count++
    m = Math.floor(l + (r - l) / 2)
    if (target > nums[m]) {
      // 此时target位于nums[m] 右侧，修改l。
      // 为什么不包含等于？因为最终将l作为返回值，而当两者相同时，不需要将l右移
      l = m + 1
    } else {
      r = m - 1
    }
  }
  return l
}

console.log(searchInsert([1, 3, 5, 6], 2))
console.log('count', count)
//================v3要点总结===============
/**
 * 1.经观察,l其实就是最终的位置，因此可以少用一个变量
 */
